// 政采云数据隔离中间件
'use strict';

module.exports = () => {
  return async (ctx, next) => {
    // 从JWT获取用户省份权限
    if (!ctx.state.user) {
      ctx.throw(401, '请先登录系统', { code: 'AUTH_REQUIRED' });
    }
    const { provinceCode } = ctx.state.user;

    // 自动注入省份查询条件
    if (ctx.querystring) {
      ctx.query = {
        ...ctx.query,
        province_code: provinceCode
      };
    }

    // 写入审计日志
    ctx.app.auditLog.record('DATA_ACCESS', {
      resource: ctx.path,
      province: provinceCode
    });

    await next();
  };
};